#include "BoxCollider.h"

using namespace game_engine;
using namespace game_engine::components;
using namespace game_engine::utils;

///////////////////////////////////////////////////////////////////////////////
// Constructors and Destructors
///////////////////////////////////////////////////////////////////////////////

BoxCollider::BoxCollider(void)
    : Component(), boxSize()
{
    type = "BoxCollider";
}

BoxCollider::BoxCollider(GameObject *obj, const Size &size)
    : Component(obj), boxSize(size)
{
    type = "BoxCollider";
}

BoxCollider::~BoxCollider(void)
{
}

///////////////////////////////////////////////////////////////////////////////
// Other public methods
///////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////
// Getters
///////////////////////////////////////////////////////////////////////////////

const Size& BoxCollider::getBoxSize(void) const
{
    return boxSize;
}

const utils::Rect BoxCollider::getCollider(const utils::Point &position) const
{
    return Rect(position.getX() - (boxSize.getWidth() / 2),
        position.getY() - (boxSize.getHeight() / 2),
        boxSize.getHeight(),
        boxSize.getWidth());
}

///////////////////////////////////////////////////////////////////////////////
// Setters
///////////////////////////////////////////////////////////////////////////////

void BoxCollider::setBoxSize(const Size &size)
{
    boxSize = size;
}
